import sys
from typing import Annotated

# 这里的代码就是 工具函数，可以根据需要自行添加
# 为例:这里添加了一个天气查询工具，导入requests模块，并定义一个函数，返回一个字典，包含城市天气信息

sys.path.append(r'D:\华清\large-model-deployment\ChatGLM3量化模型（平替）\示例代码\工具调用')

# requests模块是一个第三方库，用于网络请求
import requests
import json
# 导入注册工具函数，和装饰器一起的必须写（为了减少代码量，可以参考工具调用原理解析.py）
from register_tool import register_tool

# 这个是使用 @register_tool 装饰器注册一个工具函数，在创建工具函数时必须写的
@register_tool
# def 函数名(参数名就是name: Annotated[参数名类型，注释，是否必须]]) ，还有其他泛型参数，可以参考register_tool.py
# 文本解释必须写"""使用这个接口网址访问可以查询城市实时天气的详情"""
def get_weather(city: Annotated[str, '城市名称', True]):
    """查询城市的实时天气"""
    # 请求网络
    response = requests.get(f'https://api.seniverse.com/v3/weather/now.json?key=SqXOlV6wp9XtP_zqZ&location={city}')
    # 判断是否请求成功
    if response.status_code == 200:
        result = json.loads(response.text)
        return result['results'][0]['now']
    else:
        return '未查到天气信息'
